package com.raytoo.module.sys.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.raytoo.common.node.MenuNode;
import com.raytoo.common.node.ZTreeNode;

/**
 * 菜单服务Dao
 */
public interface MenuDao {

	/**
     * 根据条件查询菜单
     *
     * @return
     * @date 2017年2月12日 下午9:14:34
     */
	List<Map<String, Object>> selectMenus(@Param("condition") String condition,@Param("level") String level);

	/**
	 * 删除menu关联的r_role_menu
	 * @param menuId
	 */
	void deleteRoleMenuByMenuId(Integer menuId);

	/**
	 * 获取菜单列表树
	 * @return
	 */
	List<ZTreeNode> menuTreeList();

	/**
	 * 根据角色id查询菜单
	 * @param roleId
	 * @return
	 */
	List<Integer> getMenuIdsByRoleId(@Param("roleId") Integer roleId);

	/**
	 * 获取菜单列表树
	 * @param menuIds
	 * @return
	 */
	List<ZTreeNode> menuTreeListByMenuIds(List<Integer> menuIds);

	/**
     * 获取资源url通过角色id
     *
     * @param roleId
     * @return
     * @date 2017年2月19日 下午7:12:38
     */
    List<String> getResUrlsByRoleId(Integer roleId);

    /**
     * 根据角色获取菜单
     *
     * @param roleIds
     * @return
     * @date 2017年2月19日 下午10:35:40
     */
    List<MenuNode> getMenusByRoleIds(List<Integer> roleIds);

}
